﻿using System;
using System.Collections.Generic;
using System.Text;
using JEng_Mark_1.Interfaces;
using Microsoft.Xna.Framework.Graphics;

namespace JEng_Mark_1.Textures
{
    public abstract partial class JProceduralTexture : IJEngTexture
    {
        protected string _fileName = "Procedural Noise";
        protected Texture2D _tex = null;
        protected bool _readyToRender = false;
        protected int _texWidth = 64;
        protected int _texHeight = 64;

        /// <summary>
        /// Not used for procedural textures
        /// </summary>
        public string FileName { get { return _fileName; } set { return; } }

        /// <summary>
        /// Underlying texture object
        /// </summary>
        public Texture BaseTexture { get { return _tex as Texture; } }

        /// <summary>
        /// Ready to render this texture
        /// </summary>
        public bool ReadyToRender { get { return _readyToRender; } }

        /// <summary>
        /// Width of the procedurally generated texture
        /// </summary>
        public int Width { get { return _texWidth; } }

        /// <summary>
        /// Height of the procedurally generated texture
        /// </summary>
        public int Height { get { return _texHeight; } }

        public virtual void LoadContent() { }
        public virtual void UnloadContent() { }
    }
}
